from django.views import View
# 导入返回响应
from SaaSDevelTool.data_return_response import create_response
# 导入错误信息装饰器
from SaaSDevelTool.data_return_response import error_message_detection
# 查询当前参数是否是int类型
from SaaSDevelTool.data_operation import is_number
# 获取数据库连接
from SaaSDevelTool.data_mysql_data import db
# 导入解析用户信息函数
from SaaSDevelTool.data_user_func import user
# 获取当前时间
from SaaSDevelTool.data_datetime_func import get_datatime

"""
页面修改
"""


class SaaSDevelResourceUpdate(View):
    @error_message_detection
    def post(self, request):
        # 获取页面名称
        resource_name = request.POST.get("resource_name")
        # 获取页面url
        resource_urls = request.POST.get("resource_urls")
        # 获取页面编号
        resource_id = request.POST.get("resource_id")
        # 判断参数是否完整
        if not all([resource_name, resource_id]):
            return create_response(code=400, msg="修改失败，页面名称与页面编号为必传参数。")

        # 判断页面编号数据类型
        if not is_number(resource_id):
            return create_response(code=400, msg="修改失败，页面编号格式传递错误。")

        # 判断url格式
        if len(resource_urls) > 100:
            return create_response(code=400, msg="修改失败，页面地址最大长度不可超过100字符。")

        # 获取用户信息
        user_message = user.get_user(request)

        # 拼写修改的sql语句
        update_base_info_resource_table_sql = """
            UPDATE 
                db_center_rbac.base_info_resource_table
            SET 
                resource_name = '{}',
                resource_urls = '{}',
                update_user = {},
                update_time = '{}'
            WHERE 
                resource_id = {}
            ;""".format(resource_name, resource_urls, user_message['user_id'], get_datatime(), resource_id)
        # 执行sql语句
        db.update(update_base_info_resource_table_sql)
        # 返回响应
        return create_response(code=200, msg="页面资源修改成功。")
